﻿using System;
using System.Collections.Generic;

namespace Sustainalytics.Synchronization.Interface
{
    public class ChangedElement
    {

        public DateTime ChangeTimestamp { get; set; }
        public string AffectedObjectName { get; set; }
        public string AffectedDB { get; set; }
        public string AffectedCollection { get; set; }
        public Type AffectedDocumentType { get; set; }
        public object AffectedDocument { get; set; }
        public Guid AffectedDocumentId { get; set; }
        public SyncOperation Operation { get; set; }
        public string AffectedKey { get; set; } // AffectedDB/AffectedCollection/ AffectedDocumentId
        public Dictionary<string, object> Detail { get; set; }
        public SyncResultStatus Status { get; set; }

        public const string AFFECTED_INPUT_FILE_NAME_OBJECT = "input file";
        public const string AFFECTED_SYNC_RESULT_NAME_OBJECT = "sync result";
        public const string ESG_CONTROVERSY_PROFILE = "esg_controversy_profile";
        public const string LAST_KNOWN_VALID_SET_ID = "last_known_valid_set_id";
        public const string ARCHIVE_DATA_SET_ID = "arhive done";
        public const string DATA_SET_DELETE_SYNC_FAIL = "data_set_delete_sync_fail";
        public const string AFFECTED_CONTROVERSY_REPORT = "controversy report";

    }
}
